# -*- coding: utf-8 -*-
# @Time        :2025/8/27 11:24
# @Author      :文刀水寿
# @File        : until.py
"""
 @Description :
"""
# -*- coding: utf-8 -*-
# @Time        :2025/8/22 16:12
# @Author      :文刀水寿
# @File        : until.py
"""
 @Description :
"""
import logging

from django.conf import settings

from Browser.views import *
from Browser.views import browser_process
from feishu.feishu_bitable import FeishuBiTable

logger = logging.getLogger(__name__)


def update_feishu_tables2():
    """
    核心函数：更新飞书表格数据
    既可以被定时任务调用，也可以被接口调用
    """
    try:
        table_id3 = 'tblLo1DpoYwuTTqD'
        table_id4 = 'tblLo1DpoYwuTTqD'
        app_token = 'HBZkwQ61gianyBkmX8zcmYVXnGQ'

        # 初始化飞书操作类
        feishu_bitable = FeishuBiTable(
            app_config=settings.FEISHU_APP_CONFIGS,
            app_token=app_token
        )

        result = feishu_bitable.get_batch_records(
            table_id=table_id3)
        records = result.get('data', {}).get(
            'items', [])

        updated_records3 = []
        for record in records:
            fields = record.get('fields', {})
            record_id = record.get('record_id')

            # 提取字段
            extracted = {
                # 对应“达人昵称”
                '达人昵称':
                    fields.get('达人昵称', [{}])[
                        0].get('text', ''),
                # 对应“小红书号”
                '小红书号':
                    fields.get('小红书号', [{}])[
                        0].get('text', ''),
                # 对应“发布链接”，取 link 内容
                '发布链接': fields.get('发布链接',
                                       {}).get(
                    'link', ''),
                # # 对应“发布数据：曝光量”
                # '发布数据：曝光量':
                #     fields.get('发布数据：曝光量',
                #                [{}])[0].get(
                #         'text', ''),
                # # 对应“发布数据：阅读量”
                # '发布数据：阅读量':
                #     fields.get('发布数据：阅读量',
                #                [{}])[0].get(
                #         'text', ''),
                # 对应“发布数据：点赞”
                '发布数据：点赞':
                    fields.get('发布数据：点赞',
                               [{}])[0].get(
                        'text', ''),
                # 对应“发布数据：收藏”
                '发布数据：收藏':
                    fields.get('发布数据：收藏',
                               [{}])[0].get(
                        'text', ''),
                # 对应“发布数据：评论”
                '发布数据：评论':
                    fields.get('发布数据：评论',
                               [{}])[0].get(
                        'text', ''),
            }

            if extracted['发布链接']:
                updated_stats = browser_process(
                    table_id3=table_id3,
                    table_id4=table_id4,
                    url=extracted['发布链接'],
                    need_fields=['发布数据：点赞',
                                 '发布数据：收藏',
                                 '发布数据：评论', ]
                )
                logger.info(updated_stats)

                if updated_stats and isinstance(
                        updated_stats, dict):
                    # 更新提取的字段
                    extracted['发布数据：点赞'] = updated_stats.get('点赞量', extracted['发布数据：点赞'])
                    if "万" in str(extracted['发布数据：点赞']):
                        extracted['发布数据：点赞'] = str(
                            int(float(str(extracted['发布数据：点赞']).strip().replace("万", "")) * 10000))
                    extracted[
                        '发布数据：收藏'] = updated_stats.get(
                        '收藏量',
                        extracted[
                            '发布数据：收藏'])
                    if "万" in str(extracted['发布数据：点赞']):
                        extracted['发布数据：收藏'] = str(
                            int(float(str(extracted['发布数据：收藏']).strip().replace("万", "")) * 10000))
                    extracted[
                        '发布数据：评论'] = updated_stats.get(
                        '评论量',
                        extracted[
                            '发布数据：评论'])
                    if "万" in str(extracted['发布数据：点赞']):
                        extracted['发布数据：评论'] = str(
                            int(float(str(extracted['发布数据：评论']).strip().replace("万", "")) * 10000))

                    # 调用飞书接口更新记录
                    update_fields = {
                        '发布数据：点赞':
                            extracted[
                                '发布数据：点赞'],
                        '发布数据：收藏':
                            extracted[
                                '发布数据：收藏'],
                        '发布数据：评论':
                            extracted[
                                '发布数据：评论'],
                    }
                    feishu_bitable.update_record(
                        fields=update_fields,
                        table_id=table_id3,
                        record_id=record_id
                    )

            updated_records3.append(extracted)

        return {
            "success": True,
            "data": {
                "table3": updated_records3
            }
        }

    except Exception as e:
        logger.error(f"更新失败：{str(e)}",
                     exc_info=True)
        return {
            "success": False,
            "error": str(e)
        }
